iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
自我挑戰組

2D像素遊戲設計經驗分享系列 第 26

2D像素遊戲開發經驗分享 - Unity 橫向遊戲的基本移動編寫(6)

  • 分享至 

  • xImage
  •  

承上一篇,我們將會對我們的基本移動系統作最後調整。

首先,我們現在人物落下的速度有點過慢,有在浮空的感覺。我們可以利用腳本去調整下落時的重力。先建立全域變數去記錄原本的人物重力以及自己想要強化的重力比例:

    [SerializeField] private float fallGravity = 1.3f;
    private float originGravity;

然後在 FixedUpdate() 裹增加分別是人物上升以及下降時各別的重力設定:

        // 重力設定
        if (rb.velocity.y < 0f)
        {
            rb.gravityScale = originGravity * fallGravity;
        }
        else
        {
            rb.gravityScale = originGravity;
        }

這樣基本上腳本就完成了,但我們還是可以在 Unity 裹面調整更多的設定去迎合你的需要。在專案設定中,可以設定 2D 物理,當中的Y軸重力原本為-9.81,我們可以嘗試改成-20到-30,角色會進一步減少懸浮感,但也要相對的更改跳躍力度的數值。
https://ithelp.ithome.com.tw/upload/images/20231011/20163146zf4eXvyi5T.png
https://ithelp.ithome.com.tw/upload/images/20231011/20163146vNWqXUkANI.png

然後,在角色的 Rigidbody 2D 元件中,我們可以設定碰撞偵測為持續、休眠模式為不休眠以及插值來讓 Unity 使用多一點資源去確保人物的物理運算更準確。
https://ithelp.ithome.com.tw/upload/images/20231011/20163146KXo6HCtLXZ.png

最後,我們可以建立一個沒有摩擦力的物理材質,套用在 Rigidbody 上去讓角色避免卡在牆上。
https://ithelp.ithome.com.tw/upload/images/20231011/20163146CK7hiIBYzg.png
https://ithelp.ithome.com.tw/upload/images/20231011/20163146ufKbmR1Q79.png
https://ithelp.ithome.com.tw/upload/images/20231011/20163146katnVBQaeJ.png


上一篇
2D像素遊戲開發經驗分享 - Unity 橫向遊戲的基本移動編寫(5)
下一篇
2D像素遊戲開發經驗分享 - Unity 角色移動與動畫系統的配合
系列文
2D像素遊戲設計經驗分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言